モジュール詳細:9次元超立方体

「これは何かの間違いでは?」 - 今のあなた。

このモジュールの見た目は、始めは空白の状態である。

モジュールを選択すると、モジュールが変形し、球体が素早く生成される。虚空を見つめ、受け入れよ。さすれば少しの苦痛で済むだろう。

9次元超立方体 (次元版)

私がこの世を去ったら誰がそこにいるのでしょう?

重要: 19次元以上はTwitch Playsでプレイすることはできない。

初期値は9次元だが、起動していない9次元超立方体モジュールにつき次元が1つ減少する。 Modの設定やミッションにより、使用次元は変更されることがある。

個の球体が次元立方体の変形(回転や反転または両方)を動きで表現し始める。 3つの変形が表示され(この数はModの設定で変更できる)、再開の前に短い休止が入る。

次元の定義

  • からなるの次元がある。
  • 全ての球体は次元立方体上での角を表現しており、各軸1つずつからなる本の線が交わる場所を指す。
    • 例えば、2次元の正方形はXとZが交わる場所が4箇所あり、その4つの交点に4つの球体を配置してる。
  • X,Y,Z軸はそれぞれ左右、前後、上下を示している。 正軸は右、手前、上で負軸は左、奥、下である。
  • つまり、各球体の各々の軸は、正か負のどちらかの要素を位置によって定めている。
    • 2次元の正方形の例に戻ると、左上の球体は-Xと+Z、一方右下の球体は+Xと-Zになる。
  • それぞれの球体はX、Y、Z平面上でどれだけ正の位置にあるかに基づき、カラーコードが定められている。 X(右)平面は赤、Y(手前)平面は緑、Z(上)平面は青である。全ての軸が完全に正の場合、球体は白(もしくは近い色)になり、 全ての軸が完全に負の場合、球体は真っ黒になる。
    • 加色混法を使用しており、XとZの値は高くYの値が低い場合にはマゼンタに近い色になるといった具合である。

高次元の定義

  • 高次元では、立方体が3次元の視点のまま見えるようにX、Y、Zの各平面を柔軟に組み合わせていく。
  • これは、どの正軸もプレイヤーの正面から見ると常に右(+X)、上(+Y)、手前(+Z)になり、負の方向は反対(左、下、奥)に位置することを示している。
  • 3次元空間内で見ることのできる球体の位置は、正軸である全ての軸のX、Y、Zの値を合計することで求められる。
    • 例えば、W軸だけが正軸の球体とX軸だけが正軸の球体を例に挙げる。この位置はそれぞれ(0.8,0.2,0.5)と(1,0,0)となる。また、W軸とX軸のみが正軸の球体は(1.8,0.2,0.5)となる。
      • つまり、相対的に見ると、1つ目の球体は2つ目の球体よりもさらに左、前、上になるということである。
+ X Y Z W V U R S T O P Q L M N I J K F G H C D E A B XX
X 1 0 0 0.8 0.2 0.5 2 0.125 0.125 0.125 0.05 3.2 4 1 2 5 0 0 4 1 2.5 10 0.6 0.6 0.6 0.25 16
Y 0 1 0 0.2 0.5 0.8 0.125 0.125 2 0.05 3.2 0.125 2 4 1 0 5 0 1 2.5 4 0.6 0.6 10 0.25 16 0.6
Z 0 0 1 0.5 0.8 0.2 0.125 2 0.125 3.2 0.125 0.05 1 2 4 0 0 5 2.5 4 1 0.6 10 0.6 16 0.6 0.25
  • 異なる球体間で比較することにより、球体の正確な位置を決定することができる。
  • 定義上隣接する球体は、元の状態から軸の符号が1つだけずれることに気をつけることが重要であ る。
    • もう一度2次元の正方形を例に出すと、左下は右下と隣接しており、これはXのみが異なるからである。左下は、Z軸によって左上とも隣接している。
  • この理論は逆に、球体がある軸の正の方向かどうか調べる方法にも適用できる。
    • 例えば、ある球体の位置が他の球体からちょうど(左,下,奥)=(0.8,0.2,0.5)にある場合、その球体は-Wに位置していると分かる。 なぜなら、それはW軸が存在するであろう位置からさらに左,下,後に位置しており、+Wと隣接していると分かるからである。

隣接の定義

  • 右の図は、立方体の左下1/4を拡大して正面から見た際の、 つの隣接した球体の例を示している。
    • 分かりやすくするために、塗りつぶされた球体に隣接しているものをハイライト付きの塗りつぶしていない球体にしている。
  • ただ、この図はあくまで一例である。残念なことに、空間が非常に大きくなってしまい、ドットが遠すぎて小さくなってしまったため、どんな視覚化も役に立たないだろう。現時点では、これらを数値的に導き出されなければならない(前ページの表参照)。
  • 特に、定義上隣接する球体は、元の状態から軸の符号が1つの軸だけずれていることに気をつける。
    • 2次元の正方形では、左下は右下と隣接しており、これはXのみが異なるからである。左下は、Z軸によって左上とも隣接している。
  • YおよびJ軸はこのアングルでは見えない。Y軸の正の方向は観測者にとって前に位置し、違う方向から見ると他の軸もそのように見える。
    • つまり、図に描かれた全ての球体は、互いに積み重なっており、実際には複数見える状態で表示されているということである。
  • 読み順で(左から右、上から下)、球体は軸上にある。
  • 塗りつぶされている球体は完全に負の位置(底面の左奥端)に存在するため、塗りつぶされている球体から塗りつぶされていない球体への方向は正軸になり、塗りつぶされていない球体から塗りつぶされている球体への方向は負軸となる。

変形の定義

  • 隣接する任意の2つの球体を見て、互いに異なる1つの軸を書き留める。
  • 1つの球体がもう一つの球体に向かう矢印を想定し、軸の正負を決定する。矢印が右/手前/上なら 正、左/奥/下なら負になる。

変形の定義(続き)

  • 互いの関係性を特定できたら、その移動に注目する。
    • 2つの球体が、異なる軸で隣接(回転)または同じ軸だが負の軸で隣接(反転)している場合、それは変形を意味する。
  • 変形後の新しい軸を記録し、最初の軸に戻るまでこれを繰り返す。
    • 「+X軸から+Z軸、+Z軸から-Y軸、-Y軸から-X軸」が一つの例である。これで最初のX軸に到達した。
  • 二次変形には1~5つの軸が関わる。
  • 変形前の軸が負の軸の場合、変形前の軸と変形後の軸の両方を反転する。(正->負、負->正)
    • 先程の例に戻ると、「-Y軸から-X軸」が「+Y軸から+X軸」となる。
  • 最初の軸に到達したら、全ての変形前の軸を消去し、順序を逆にして結合する。
    • 例に戻る。現在「+X軸から+Z軸、+Z軸から-Y軸、+Y軸から+X軸」と分かっている。変形前の軸を取り除くと、「+Z、-Y、+X」となる。順序を逆にする必要があるので、「+X、-Y、+Z」となり、これらを結合して「+X-Y+Z」を得る。
  • こうして得られた軸の並びを二次変形と呼ぶ。変形の際には同時に1~5つの二次変形が発生することがある。
  • どの軸も常に1つの二次変形しか行えない。したがって、個々の球体の移動に影響を与えても、軸には影響を与えず、これらの二次変形は互いに独立している。
  • 二次変形は円柱状(端がなく、一つの要素が次の要素に影響を与える)であり、それぞれ決まった順序がないため、複数の記し方が存在する。
    • 例えば、+X-Y+Zは-Y+Z+X(1つ左にずれる)でも+Z+X-Y(1つ右にずれる)でも表せる。しかし、+Z-Y+X(逆順)や+X+Y+Z(-を+にする)は順序や正負が異なっているので、表せない。

変形値

  • 変形が0の場合、このページをスキップする。すべての変形値は0である。
  • 全ての変形は変形値を持っている。それぞれの二次変形において、隣り合わせの軸のペアをリストアップする(最後から最初の軸によるペアも含む)。
    • 二次変形が1つの軸のみの場合(反転)、上記のルールを無視し、その軸を2回繰り返すことによってペアを作成する。
  • 常に二次変形内の軸の総数と、ペアの数は同じになる。
  • 各ペアに対して、最初の文字を段 、二番目の文字を列として、表の値を取得する。
    • どちらかの軸が負なら、ペアの値に-1を掛ける。

* 2軸の変形であっても、このルールは適用される。+R-Tの二次変形では+R-Tと-T+Rのペアを得る。

X Y Z W V U R S T
X 1 2 5 1 8 8 1 5 2 X
Y 2 3 6 2 9 9 2 6 3 Y
Z 9 1 4 9 7 7 9 4 1 Z
W 1 2 5 1 8 8 1 5 2 W
V 2 3 6 2 9 9 2 6 3 V
U 9 1 4 9 7 7 9 4 1 U
R 1 2 5 1 8 8 1 5 2 R
S 2 3 6 2 9 9 2 6 3 S
T 9 1 4 9 7 7 9 4 1 T
X Y Z W V U R S T

OとF = X PとG = Y QとH = Z LとC = W MとD = V NとE = U IとA = R JとB = S KとXX = T

変形値(続き)

  • それぞれの変形について、全ての二次変形から得たペアの値を合計し、絶対値を求める。 その値がこの変形の変形値になる。以下マニュアルでは、 px は、x番目の変形値を表している。

ゴールボール

  • 変形が0の場合、このページと次のページをスキップする。ゴールボールは全てが負の位置にある(黒色)。
  • それぞれの変形について、数列axを作る。xは変形が何番目かを指す。全てのaxの初期値はである。
  • axに二進数のpxを配置する。つまり「十進数 <-> 二進数」からpx以下の最大の数を探して変形値から引き, axの左からx番目を1にする。xは引いた数から求めた位置の数である。引き算と桁の配置をpxが0になるまで繰り返す。
十進数 <-> 二進数
引く数 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
  • axと変形を見て、下の表を参照し、それぞれの軸について、対応する数字を反転させる(0->1,1->0)。
軸 <-> 位置
正軸 +X +Y +Z +W +V +U +R +S +T +O +P +Q +L +M +N +I +J +K +F +G +H +C +D +E +A +B +XX
負軸 -XX -B -A -E -D -C -H -G -F -K -J -I -N -M -L -Q -P -O -T -S -R -U -V -W -Z -Y -X
位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

ゴールボール(続き)

  • 全ての値を設定できたら、以下の条件に沿ってa0を求める。(注意:条件の数よりも変形数が低い場合、あるaの値が存在しないことがある)
    1. a1が存在し, かつa1番目の桁が1なら、a0番目は1である。
    2. a2が存在し, かつa2番目の桁が1なら、a0番目は1である。
    3. a3が存在し, かつa3番目の桁が1なら、a0番目は1である。
    4. a4が存在し, かつa4の番目の桁が1なら、a0番目は1である。
    5. a5が存在し, かつa5 番目の桁が1なら、a0番目は1である。
  • a0を除く全てのaの値はグレイコードとなっている。全てのグレイコードをバイナリコードに変換する。
    1. バイナリコードの最初の桁はグレイコードの最初の桁と一致する。
    2. バイナリコードの次の桁は、バイナリコードの前の桁と現在のグレイコードの和が1であれば1である。そうでない場合は0である。
    3. 桁になるまでステップ2を繰り返す。これがバイナリコードである。
  • a0と他のすべてのaの値のXORを求める。a0とa1を足し、その後次のaを参照する。桁の繰り上がりは行わず(1+1≠10)、それぞれのステップで2を0に置き換える。
  • 全ての0を-、全ての1を+に置き換える。
  • これがゴール配列となる。ゴールボールはゴール配列の軸の正負と全て一致している唯一の球を示している。
    • 各文字の位置は「」の順番で、どの軸が属するかを表している。

一時停止

  • 続ける前に、このモジュールはミスを記録しないと一時停止を解除できないことに気をつけること。先に全ての変形をメモしているか確認する。
  • モジュールのどこかを押すと一時停止することができる。変形が止まり、入力可能を示す音の合図が再生される。
  • モジュールが一時停止するたびに、ランダムな球1つが選ばれる。これをスタートボールと呼ぶ。スタートボールは発光する。
  • 発光している球体をゴールボールと同じ位置に合わせることが目標である。

移動

  • カウントダウンタイマーの0~のときにモジュールを押して、1つの軸をキューに入れられる。0~の各入力は軸を表している。ただし順番はランダムである。
  • つの軸をキューに入れることにより入力が有効となる。カウントダウンタイマーののとき、自動的につの軸を送信する。キューに対応していない数の場合、キューはリセットされる。
  • 発光している球体は送信されたつの軸の反対側に移動する。
  • 送信の際、すべての軸は2回までしか送信できない。
    • ニアミスがあっても、モジュールには表示されない。
  • ゴールボールと発光している球体が同じ位置にあるときに、つ全ての軸を送信するように押すと、その時にモジュールが解除されるかミスが記録されるか判定する。
    • ミスが記録されると、モジュールはリセットされる。